//auto gen by paipai.java.augogen ver 3.0.0
//author skyzhuang
//source idl: com.erp.organization.dao.idl.FindBranchResp.java


#ifndef ERP_ORGANIZATION_DDO_CBRANCHDDO_BY_AUTOGEN_V5_H
#define ERP_ORGANIZATION_DDO_CBRANCHDDO_BY_AUTOGEN_V5_H


#include "app_platform/intf_serializable.h"
#include <bitset>
#include <string>
#include <sstream>
#include <iostream>


namespace erp
{
namespace organization
{
namespace ddo
{


class CBranchDdo : public ISerializable
{
	public:
		std::string m_sLastErrMsg;///<错误信息

		/**
		 * 版本号  
		 *
		 * 版本 >= 0
		 */
		uint32_t dwVersion;

		/**
		 * cVersion_u uflag field
		 */
		uint8_t cVersion_u; //optional flag

		/**
		 * 分支机构SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwBranchSysNo;

		/**
		 * cBranchSysNo_u uflag field
		 */
		uint8_t cBranchSysNo_u; //optional flag

		/**
		 * 父分支机构SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwParentBranchSysNo;

		/**
		 * cParentBranchSysNo_u uflag field
		 */
		uint8_t cParentBranchSysNo_u; //optional flag

		/**
		 * 分支全称
		 *
		 * 版本 >= 0
		 */
		std::string strFullName;

		/**
		 * cFullName_u uflag field
		 */
		uint8_t cFullName_u; //optional flag

		/**
		 * 分支简称
		 *
		 * 版本 >= 0
		 */
		std::string strBranchName;

		/**
		 * cBranchName_u uflag field
		 */
		uint8_t cBranchName_u; //optional flag

		/**
		 * 分支编码
		 *
		 * 版本 >= 0
		 */
		std::string strBranchID;

		/**
		 * cBranchID_u uflag field
		 */
		uint8_t cBranchID_u; //optional flag

		/**
		 * 备注
		 *
		 * 版本 >= 0
		 */
		std::string strComment;

		/**
		 * cComment_u uflag field
		 */
		uint8_t cComment_u; //optional flag

		/**
		 * 拼音码
		 *
		 * 版本 >= 0
		 */
		std::string strPyCode;

		/**
		 * cPyCode_u uflag field
		 */
		uint8_t cPyCode_u; //optional flag

		/**
		 * 适用价格Level
		 *
		 * 版本 >= 0
		 */
		uint16_t wPrebuyPriceLevel;

		/**
		 * cPrebuyPriceLevel_u uflag field
		 */
		uint8_t cPrebuyPriceLevel_u; //optional flag

		/**
		 * 联系人
		 *
		 * 版本 >= 0
		 */
		std::string strContact;

		/**
		 * cContact_u uflag field
		 */
		uint8_t cContact_u; //optional flag

		/**
		 * 电话
		 *
		 * 版本 >= 0
		 */
		std::string strPhone;

		/**
		 * cPhone_u uflag field
		 */
		uint8_t cPhone_u; //optional flag

		/**
		 * 邮编
		 *
		 * 版本 >= 0
		 */
		std::string strZipCode;

		/**
		 * cZipCode_u uflag field
		 */
		uint8_t cZipCode_u; //optional flag

		/**
		 * 地址
		 *
		 * 版本 >= 0
		 */
		std::string strAddress;

		/**
		 * cAddress_u uflag field
		 */
		uint8_t cAddress_u; //optional flag

		/**
		 * 银行户名
		 *
		 * 版本 >= 0
		 */
		std::string strBankAccountName;

		/**
		 * cBankAccountName_u uflag field
		 */
		uint8_t cBankAccountName_u; //optional flag

		/**
		 * 银行账号
		 *
		 * 版本 >= 0
		 */
		std::string strBankAccount;

		/**
		 * cBankAccount_u uflag field
		 */
		uint8_t cBankAccount_u; //optional flag

		/**
		 * 税号
		 *
		 * 版本 >= 0
		 */
		std::string strTaxID;

		/**
		 * cTaxID_u uflag field
		 */
		uint8_t cTaxID_u; //optional flag

		/**
		 * 核算全名
		 *
		 * 版本 >= 0
		 */
		std::string strAccoutName;

		/**
		 * cAccoutName_u uflag field
		 */
		uint8_t cAccoutName_u; //optional flag

		/**
		 * 核算模式Enum
		 *
		 * 版本 >= 0
		 */
		uint16_t wAcountMode;

		/**
		 * cAcountMode_u uflag field
		 */
		uint8_t cAcountMode_u; //optional flag

		/**
		 * 机构属性,只读
		 *
		 * 版本 >= 0
		 */
		std::bitset<32>  bitsetBranchProperty;

		/**
		 * cBranchProperty_u uflag field
		 */
		uint8_t cBranchProperty_u; //optional flag

		/**
		 * 机构属性,设置
		 *
		 * 版本 >= 0
		 */
		std::bitset<32>  bitsetBranchPropertyInclude;

		/**
		 * cBranchPropertyInclude_u uflag field
		 */
		uint8_t cBranchPropertyInclude_u; //optional flag

		/**
		 * 机构属性,取消
		 *
		 * 版本 >= 0
		 */
		std::bitset<32>  bitsetBranchPropertyExclude;

		/**
		 * cBranchPropertyExclude_u uflag field
		 */
		uint8_t cBranchPropertyExclude_u; //optional flag

		/**
		 * 机构状态
		 *
		 * 版本 >= 0
		 */
		uint32_t dwBranchStatus;

		/**
		 * cBranchStatus_u uflag field
		 */
		uint8_t cBranchStatus_u; //optional flag

		/**
		 * 创建人SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwCreatorSysNo;

		/**
		 * cCreatorSysNo_u uflag field
		 */
		uint8_t cCreatorSysNo_u; //optional flag

		/**
		 * 创建时间
		 *
		 * 版本 >= 0
		 */
		uint32_t dwRowCreatDate;

		/**
		 * cRowCreatDate_u uflag field
		 */
		uint8_t cRowCreatDate_u; //optional flag

		/**
		 * 编辑者SysNo
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwModifierSysNo;

		/**
		 * cModifierSysNo_u uflag field
		 */
		uint8_t cModifierSysNo_u; //optional flag

		/**
		 * 编辑时间
		 *
		 * 版本 >= 0
		 */
		uint32_t dwRowModifyDate;

		/**
		 * cRowModifyDate_u uflag field
		 */
		uint8_t cRowModifyDate_u; //optional flag




	public:
		CBranchDdo():
		dwVersion(0),
		cVersion_u(0),
		ddwBranchSysNo(0),
		cBranchSysNo_u(0),
		ddwParentBranchSysNo(0),
		cParentBranchSysNo_u(0),
		cFullName_u(0),
		cBranchName_u(0),
		cBranchID_u(0),
		cComment_u(0),
		cPyCode_u(0),
		wPrebuyPriceLevel(0),
		cPrebuyPriceLevel_u(0),
		cContact_u(0),
		cPhone_u(0),
		cZipCode_u(0),
		cAddress_u(0),
		cBankAccountName_u(0),
		cBankAccount_u(0),
		cTaxID_u(0),
		cAccoutName_u(0),
		wAcountMode(0),
		cAcountMode_u(0),
		cBranchProperty_u(0),
		cBranchPropertyInclude_u(0),
		cBranchPropertyExclude_u(0),
		dwBranchStatus(0),
		cBranchStatus_u(0),
		ddwCreatorSysNo(0),
		cCreatorSysNo_u(0),
		dwRowCreatDate(0),
		cRowCreatDate_u(0),
		ddwModifierSysNo(0),
		cModifierSysNo_u(0),
		dwRowModifyDate(0),
		cRowModifyDate_u(0) {}
				CBranchDdo& operator = (const CBranchDdo& obj){

			this->dwVersion = obj.dwVersion;
			this->ddwBranchSysNo = obj.ddwBranchSysNo;
			this->ddwParentBranchSysNo = obj.ddwParentBranchSysNo;
			this->strFullName = obj.strFullName;
			this->strBranchName = obj.strBranchName;
			this->strBranchID = obj.strBranchID;
			this->strComment = obj.strComment;
			this->strPyCode = obj.strPyCode;
			this->wPrebuyPriceLevel = obj.wPrebuyPriceLevel;
			this->strContact = obj.strContact;
			this->strPhone = obj.strPhone;
			this->strZipCode = obj.strZipCode;
			this->strAddress = obj.strAddress;
			this->strBankAccountName = obj.strBankAccountName;
			this->strBankAccount = obj.strBankAccount;
			this->strTaxID = obj.strTaxID;
			this->strAccoutName = obj.strAccoutName;
			this->wAcountMode = obj.wAcountMode;
			this->bitsetBranchProperty = obj.bitsetBranchProperty;
			this->bitsetBranchPropertyInclude = obj.bitsetBranchPropertyInclude;
			this->bitsetBranchPropertyExclude = obj.bitsetBranchPropertyExclude;
			this->dwBranchStatus = obj.dwBranchStatus;
			this->ddwCreatorSysNo = obj.ddwCreatorSysNo;
			this->dwRowCreatDate = obj.dwRowCreatDate;
			this->ddwModifierSysNo = obj.ddwModifierSysNo;
			this->dwRowModifyDate = obj.dwRowModifyDate;
			this->cVersion_u = obj.cVersion_u;
			this->cBranchSysNo_u = obj.cBranchSysNo_u;
			this->cParentBranchSysNo_u = obj.cParentBranchSysNo_u;
			this->cFullName_u = obj.cFullName_u;
			this->cBranchName_u = obj.cBranchName_u;
			this->cBranchID_u = obj.cBranchID_u;
			this->cComment_u = obj.cComment_u;
			this->cPyCode_u = obj.cPyCode_u;
			this->cPrebuyPriceLevel_u = obj.cPrebuyPriceLevel_u;
			this->cContact_u = obj.cContact_u;
			this->cPhone_u = obj.cPhone_u;
			this->cZipCode_u = obj.cZipCode_u;
			this->cAddress_u = obj.cAddress_u;
			this->cBankAccountName_u = obj.cBankAccountName_u;
			this->cBankAccount_u = obj.cBankAccount_u;
			this->cTaxID_u = obj.cTaxID_u;
			this->cAccoutName_u = obj.cAccoutName_u;
			this->cAcountMode_u = obj.cAcountMode_u;
			this->cBranchProperty_u = obj.cBranchProperty_u;
			this->cBranchPropertyInclude_u = obj.cBranchPropertyInclude_u;
			this->cBranchPropertyExclude_u = obj.cBranchPropertyExclude_u;
			this->cBranchStatus_u = obj.cBranchStatus_u;
			this->cCreatorSysNo_u = obj.cCreatorSysNo_u;
			this->cRowCreatDate_u = obj.cRowCreatDate_u;
			this->cModifierSysNo_u = obj.cModifierSysNo_u;
			this->cRowModifyDate_u = obj.cRowModifyDate_u;
			return *this;
		}

	public:


		/**
		 * 是否设置版本号  了
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 bool  IsVersionSet() const{
				 return  cVersion_u != 0;
		}


		/**
		 * 获取uflag版本号  了
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 const uint8_t   GetVersionUFlag() const{
				 return  cVersion_u;
		}


		/**
		 * 设置版本号  
		 * 
		 * @param uint32_t:dwVersion
		 *  
		 * 
		 */
		 void  SetVersion( const uint32_t& sVal, uint8_t cUFlag=1){
				dwVersion = sVal;
				cVersion_u = cUFlag;
		}


		/**
		 * 获取版本号  
		 * 
		 * @return dwVersion value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetVersion() const {
				return dwVersion;
		}


		/**
		 * 是否设置分支机构SysNo了
		 * 
		 * @param uint64_t:ddwBranchSysNo
		 *  
		 * 
		 */
		 bool  IsBranchSysNoSet() const{
				 return  cBranchSysNo_u != 0;
		}


		/**
		 * 获取uflag分支机构SysNo了
		 * 
		 * @param uint64_t:ddwBranchSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetBranchSysNoUFlag() const{
				 return  cBranchSysNo_u;
		}


		/**
		 * 设置分支机构SysNo
		 * 
		 * @param uint64_t:ddwBranchSysNo
		 *  
		 * 
		 */
		 void  SetBranchSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwBranchSysNo = sVal;
				cBranchSysNo_u = cUFlag;
		}


		/**
		 * 获取分支机构SysNo
		 * 
		 * @return ddwBranchSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetBranchSysNo() const {
				return ddwBranchSysNo;
		}


		/**
		 * 是否设置父分支机构SysNo了
		 * 
		 * @param uint64_t:ddwParentBranchSysNo
		 *  
		 * 
		 */
		 bool  IsParentBranchSysNoSet() const{
				 return  cParentBranchSysNo_u != 0;
		}


		/**
		 * 获取uflag父分支机构SysNo了
		 * 
		 * @param uint64_t:ddwParentBranchSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetParentBranchSysNoUFlag() const{
				 return  cParentBranchSysNo_u;
		}


		/**
		 * 设置父分支机构SysNo
		 * 
		 * @param uint64_t:ddwParentBranchSysNo
		 *  
		 * 
		 */
		 void  SetParentBranchSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwParentBranchSysNo = sVal;
				cParentBranchSysNo_u = cUFlag;
		}


		/**
		 * 获取父分支机构SysNo
		 * 
		 * @return ddwParentBranchSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetParentBranchSysNo() const {
				return ddwParentBranchSysNo;
		}


		/**
		 * 是否设置分支全称了
		 * 
		 * @param std::string:strFullName
		 *  
		 * 
		 */
		 bool  IsFullNameSet() const{
				 return  cFullName_u != 0;
		}


		/**
		 * 获取uflag分支全称了
		 * 
		 * @param std::string:strFullName
		 *  
		 * 
		 */
		 const uint8_t   GetFullNameUFlag() const{
				 return  cFullName_u;
		}


		/**
		 * 设置分支全称
		 * 
		 * @param std::string:strFullName
		 *  
		 * 
		 */
		 void  SetFullName( const std::string& sVal, uint8_t cUFlag=1){
				strFullName = sVal;
				cFullName_u = cUFlag;
		}


		/**
		 * 获取分支全称
		 * 
		 * @return strFullName value 类型为:std::string
		 * 
		 */
		 const std::string&  GetFullName() const {
				return strFullName;
		}


		/**
		 * 获取分支全称
		 * 
		 * @return strFullName value 类型为:std::string
		 * 
		 */
		 std::string&  GetFullName() {
				return strFullName;
		}


		/**
		 * 是否设置分支简称了
		 * 
		 * @param std::string:strBranchName
		 *  
		 * 
		 */
		 bool  IsBranchNameSet() const{
				 return  cBranchName_u != 0;
		}


		/**
		 * 获取uflag分支简称了
		 * 
		 * @param std::string:strBranchName
		 *  
		 * 
		 */
		 const uint8_t   GetBranchNameUFlag() const{
				 return  cBranchName_u;
		}


		/**
		 * 设置分支简称
		 * 
		 * @param std::string:strBranchName
		 *  
		 * 
		 */
		 void  SetBranchName( const std::string& sVal, uint8_t cUFlag=1){
				strBranchName = sVal;
				cBranchName_u = cUFlag;
		}


		/**
		 * 获取分支简称
		 * 
		 * @return strBranchName value 类型为:std::string
		 * 
		 */
		 const std::string&  GetBranchName() const {
				return strBranchName;
		}


		/**
		 * 获取分支简称
		 * 
		 * @return strBranchName value 类型为:std::string
		 * 
		 */
		 std::string&  GetBranchName() {
				return strBranchName;
		}


		/**
		 * 是否设置分支编码了
		 * 
		 * @param std::string:strBranchID
		 *  
		 * 
		 */
		 bool  IsBranchIDSet() const{
				 return  cBranchID_u != 0;
		}


		/**
		 * 获取uflag分支编码了
		 * 
		 * @param std::string:strBranchID
		 *  
		 * 
		 */
		 const uint8_t   GetBranchIDUFlag() const{
				 return  cBranchID_u;
		}


		/**
		 * 设置分支编码
		 * 
		 * @param std::string:strBranchID
		 *  
		 * 
		 */
		 void  SetBranchID( const std::string& sVal, uint8_t cUFlag=1){
				strBranchID = sVal;
				cBranchID_u = cUFlag;
		}


		/**
		 * 获取分支编码
		 * 
		 * @return strBranchID value 类型为:std::string
		 * 
		 */
		 const std::string&  GetBranchID() const {
				return strBranchID;
		}


		/**
		 * 获取分支编码
		 * 
		 * @return strBranchID value 类型为:std::string
		 * 
		 */
		 std::string&  GetBranchID() {
				return strBranchID;
		}


		/**
		 * 是否设置备注了
		 * 
		 * @param std::string:strComment
		 *  
		 * 
		 */
		 bool  IsCommentSet() const{
				 return  cComment_u != 0;
		}


		/**
		 * 获取uflag备注了
		 * 
		 * @param std::string:strComment
		 *  
		 * 
		 */
		 const uint8_t   GetCommentUFlag() const{
				 return  cComment_u;
		}


		/**
		 * 设置备注
		 * 
		 * @param std::string:strComment
		 *  
		 * 
		 */
		 void  SetComment( const std::string& sVal, uint8_t cUFlag=1){
				strComment = sVal;
				cComment_u = cUFlag;
		}


		/**
		 * 获取备注
		 * 
		 * @return strComment value 类型为:std::string
		 * 
		 */
		 const std::string&  GetComment() const {
				return strComment;
		}


		/**
		 * 获取备注
		 * 
		 * @return strComment value 类型为:std::string
		 * 
		 */
		 std::string&  GetComment() {
				return strComment;
		}


		/**
		 * 是否设置拼音码了
		 * 
		 * @param std::string:strPyCode
		 *  
		 * 
		 */
		 bool  IsPyCodeSet() const{
				 return  cPyCode_u != 0;
		}


		/**
		 * 获取uflag拼音码了
		 * 
		 * @param std::string:strPyCode
		 *  
		 * 
		 */
		 const uint8_t   GetPyCodeUFlag() const{
				 return  cPyCode_u;
		}


		/**
		 * 设置拼音码
		 * 
		 * @param std::string:strPyCode
		 *  
		 * 
		 */
		 void  SetPyCode( const std::string& sVal, uint8_t cUFlag=1){
				strPyCode = sVal;
				cPyCode_u = cUFlag;
		}


		/**
		 * 获取拼音码
		 * 
		 * @return strPyCode value 类型为:std::string
		 * 
		 */
		 const std::string&  GetPyCode() const {
				return strPyCode;
		}


		/**
		 * 获取拼音码
		 * 
		 * @return strPyCode value 类型为:std::string
		 * 
		 */
		 std::string&  GetPyCode() {
				return strPyCode;
		}


		/**
		 * 是否设置适用价格Level了
		 * 
		 * @param uint16_t:wPrebuyPriceLevel
		 *  
		 * 
		 */
		 bool  IsPrebuyPriceLevelSet() const{
				 return  cPrebuyPriceLevel_u != 0;
		}


		/**
		 * 获取uflag适用价格Level了
		 * 
		 * @param uint16_t:wPrebuyPriceLevel
		 *  
		 * 
		 */
		 const uint8_t   GetPrebuyPriceLevelUFlag() const{
				 return  cPrebuyPriceLevel_u;
		}


		/**
		 * 设置适用价格Level
		 * 
		 * @param uint16_t:wPrebuyPriceLevel
		 *  
		 * 
		 */
		 void  SetPrebuyPriceLevel( const uint16_t& sVal, uint8_t cUFlag=1){
				wPrebuyPriceLevel = sVal;
				cPrebuyPriceLevel_u = cUFlag;
		}


		/**
		 * 获取适用价格Level
		 * 
		 * @return wPrebuyPriceLevel value 类型为:uint16_t
		 * 
		 */
		 const uint16_t&  GetPrebuyPriceLevel() const {
				return wPrebuyPriceLevel;
		}


		/**
		 * 是否设置联系人了
		 * 
		 * @param std::string:strContact
		 *  
		 * 
		 */
		 bool  IsContactSet() const{
				 return  cContact_u != 0;
		}


		/**
		 * 获取uflag联系人了
		 * 
		 * @param std::string:strContact
		 *  
		 * 
		 */
		 const uint8_t   GetContactUFlag() const{
				 return  cContact_u;
		}


		/**
		 * 设置联系人
		 * 
		 * @param std::string:strContact
		 *  
		 * 
		 */
		 void  SetContact( const std::string& sVal, uint8_t cUFlag=1){
				strContact = sVal;
				cContact_u = cUFlag;
		}


		/**
		 * 获取联系人
		 * 
		 * @return strContact value 类型为:std::string
		 * 
		 */
		 const std::string&  GetContact() const {
				return strContact;
		}


		/**
		 * 获取联系人
		 * 
		 * @return strContact value 类型为:std::string
		 * 
		 */
		 std::string&  GetContact() {
				return strContact;
		}


		/**
		 * 是否设置电话了
		 * 
		 * @param std::string:strPhone
		 *  
		 * 
		 */
		 bool  IsPhoneSet() const{
				 return  cPhone_u != 0;
		}


		/**
		 * 获取uflag电话了
		 * 
		 * @param std::string:strPhone
		 *  
		 * 
		 */
		 const uint8_t   GetPhoneUFlag() const{
				 return  cPhone_u;
		}


		/**
		 * 设置电话
		 * 
		 * @param std::string:strPhone
		 *  
		 * 
		 */
		 void  SetPhone( const std::string& sVal, uint8_t cUFlag=1){
				strPhone = sVal;
				cPhone_u = cUFlag;
		}


		/**
		 * 获取电话
		 * 
		 * @return strPhone value 类型为:std::string
		 * 
		 */
		 const std::string&  GetPhone() const {
				return strPhone;
		}


		/**
		 * 获取电话
		 * 
		 * @return strPhone value 类型为:std::string
		 * 
		 */
		 std::string&  GetPhone() {
				return strPhone;
		}


		/**
		 * 是否设置邮编了
		 * 
		 * @param std::string:strZipCode
		 *  
		 * 
		 */
		 bool  IsZipCodeSet() const{
				 return  cZipCode_u != 0;
		}


		/**
		 * 获取uflag邮编了
		 * 
		 * @param std::string:strZipCode
		 *  
		 * 
		 */
		 const uint8_t   GetZipCodeUFlag() const{
				 return  cZipCode_u;
		}


		/**
		 * 设置邮编
		 * 
		 * @param std::string:strZipCode
		 *  
		 * 
		 */
		 void  SetZipCode( const std::string& sVal, uint8_t cUFlag=1){
				strZipCode = sVal;
				cZipCode_u = cUFlag;
		}


		/**
		 * 获取邮编
		 * 
		 * @return strZipCode value 类型为:std::string
		 * 
		 */
		 const std::string&  GetZipCode() const {
				return strZipCode;
		}


		/**
		 * 获取邮编
		 * 
		 * @return strZipCode value 类型为:std::string
		 * 
		 */
		 std::string&  GetZipCode() {
				return strZipCode;
		}


		/**
		 * 是否设置地址了
		 * 
		 * @param std::string:strAddress
		 *  
		 * 
		 */
		 bool  IsAddressSet() const{
				 return  cAddress_u != 0;
		}


		/**
		 * 获取uflag地址了
		 * 
		 * @param std::string:strAddress
		 *  
		 * 
		 */
		 const uint8_t   GetAddressUFlag() const{
				 return  cAddress_u;
		}


		/**
		 * 设置地址
		 * 
		 * @param std::string:strAddress
		 *  
		 * 
		 */
		 void  SetAddress( const std::string& sVal, uint8_t cUFlag=1){
				strAddress = sVal;
				cAddress_u = cUFlag;
		}


		/**
		 * 获取地址
		 * 
		 * @return strAddress value 类型为:std::string
		 * 
		 */
		 const std::string&  GetAddress() const {
				return strAddress;
		}


		/**
		 * 获取地址
		 * 
		 * @return strAddress value 类型为:std::string
		 * 
		 */
		 std::string&  GetAddress() {
				return strAddress;
		}


		/**
		 * 是否设置银行户名了
		 * 
		 * @param std::string:strBankAccountName
		 *  
		 * 
		 */
		 bool  IsBankAccountNameSet() const{
				 return  cBankAccountName_u != 0;
		}


		/**
		 * 获取uflag银行户名了
		 * 
		 * @param std::string:strBankAccountName
		 *  
		 * 
		 */
		 const uint8_t   GetBankAccountNameUFlag() const{
				 return  cBankAccountName_u;
		}


		/**
		 * 设置银行户名
		 * 
		 * @param std::string:strBankAccountName
		 *  
		 * 
		 */
		 void  SetBankAccountName( const std::string& sVal, uint8_t cUFlag=1){
				strBankAccountName = sVal;
				cBankAccountName_u = cUFlag;
		}


		/**
		 * 获取银行户名
		 * 
		 * @return strBankAccountName value 类型为:std::string
		 * 
		 */
		 const std::string&  GetBankAccountName() const {
				return strBankAccountName;
		}


		/**
		 * 获取银行户名
		 * 
		 * @return strBankAccountName value 类型为:std::string
		 * 
		 */
		 std::string&  GetBankAccountName() {
				return strBankAccountName;
		}


		/**
		 * 是否设置银行账号了
		 * 
		 * @param std::string:strBankAccount
		 *  
		 * 
		 */
		 bool  IsBankAccountSet() const{
				 return  cBankAccount_u != 0;
		}


		/**
		 * 获取uflag银行账号了
		 * 
		 * @param std::string:strBankAccount
		 *  
		 * 
		 */
		 const uint8_t   GetBankAccountUFlag() const{
				 return  cBankAccount_u;
		}


		/**
		 * 设置银行账号
		 * 
		 * @param std::string:strBankAccount
		 *  
		 * 
		 */
		 void  SetBankAccount( const std::string& sVal, uint8_t cUFlag=1){
				strBankAccount = sVal;
				cBankAccount_u = cUFlag;
		}


		/**
		 * 获取银行账号
		 * 
		 * @return strBankAccount value 类型为:std::string
		 * 
		 */
		 const std::string&  GetBankAccount() const {
				return strBankAccount;
		}


		/**
		 * 获取银行账号
		 * 
		 * @return strBankAccount value 类型为:std::string
		 * 
		 */
		 std::string&  GetBankAccount() {
				return strBankAccount;
		}


		/**
		 * 是否设置税号了
		 * 
		 * @param std::string:strTaxID
		 *  
		 * 
		 */
		 bool  IsTaxIDSet() const{
				 return  cTaxID_u != 0;
		}


		/**
		 * 获取uflag税号了
		 * 
		 * @param std::string:strTaxID
		 *  
		 * 
		 */
		 const uint8_t   GetTaxIDUFlag() const{
				 return  cTaxID_u;
		}


		/**
		 * 设置税号
		 * 
		 * @param std::string:strTaxID
		 *  
		 * 
		 */
		 void  SetTaxID( const std::string& sVal, uint8_t cUFlag=1){
				strTaxID = sVal;
				cTaxID_u = cUFlag;
		}


		/**
		 * 获取税号
		 * 
		 * @return strTaxID value 类型为:std::string
		 * 
		 */
		 const std::string&  GetTaxID() const {
				return strTaxID;
		}


		/**
		 * 获取税号
		 * 
		 * @return strTaxID value 类型为:std::string
		 * 
		 */
		 std::string&  GetTaxID() {
				return strTaxID;
		}


		/**
		 * 是否设置核算全名了
		 * 
		 * @param std::string:strAccoutName
		 *  
		 * 
		 */
		 bool  IsAccoutNameSet() const{
				 return  cAccoutName_u != 0;
		}


		/**
		 * 获取uflag核算全名了
		 * 
		 * @param std::string:strAccoutName
		 *  
		 * 
		 */
		 const uint8_t   GetAccoutNameUFlag() const{
				 return  cAccoutName_u;
		}


		/**
		 * 设置核算全名
		 * 
		 * @param std::string:strAccoutName
		 *  
		 * 
		 */
		 void  SetAccoutName( const std::string& sVal, uint8_t cUFlag=1){
				strAccoutName = sVal;
				cAccoutName_u = cUFlag;
		}


		/**
		 * 获取核算全名
		 * 
		 * @return strAccoutName value 类型为:std::string
		 * 
		 */
		 const std::string&  GetAccoutName() const {
				return strAccoutName;
		}


		/**
		 * 获取核算全名
		 * 
		 * @return strAccoutName value 类型为:std::string
		 * 
		 */
		 std::string&  GetAccoutName() {
				return strAccoutName;
		}


		/**
		 * 是否设置核算模式Enum了
		 * 
		 * @param uint16_t:wAcountMode
		 *  
		 * 
		 */
		 bool  IsAcountModeSet() const{
				 return  cAcountMode_u != 0;
		}


		/**
		 * 获取uflag核算模式Enum了
		 * 
		 * @param uint16_t:wAcountMode
		 *  
		 * 
		 */
		 const uint8_t   GetAcountModeUFlag() const{
				 return  cAcountMode_u;
		}


		/**
		 * 设置核算模式Enum
		 * 
		 * @param uint16_t:wAcountMode
		 *  
		 * 
		 */
		 void  SetAcountMode( const uint16_t& sVal, uint8_t cUFlag=1){
				wAcountMode = sVal;
				cAcountMode_u = cUFlag;
		}


		/**
		 * 获取核算模式Enum
		 * 
		 * @return wAcountMode value 类型为:uint16_t
		 * 
		 */
		 const uint16_t&  GetAcountMode() const {
				return wAcountMode;
		}


		/**
		 * 是否设置机构属性,只读了
		 * 
		 * @param std::bitset<32> :bitsetBranchProperty
		 *  
		 * 
		 */
		 bool  IsBranchPropertySet() const{
				 return  cBranchProperty_u != 0;
		}


		/**
		 * 获取uflag机构属性,只读了
		 * 
		 * @param std::bitset<32> :bitsetBranchProperty
		 *  
		 * 
		 */
		 const uint8_t   GetBranchPropertyUFlag() const{
				 return  cBranchProperty_u;
		}


		/**
		 * 设置机构属性,只读
		 * 
		 * @param std::bitset<32> :bitsetBranchProperty
		 *  
		 * 
		 */
		 void  SetBranchProperty( const std::bitset<32> & sVal, uint8_t cUFlag=1){
				bitsetBranchProperty = sVal;
				cBranchProperty_u = cUFlag;
		}


		/**
		 * 获取机构属性,只读
		 * 
		 * @return bitsetBranchProperty value 类型为:std::bitset<32> 
		 * 
		 */
		 const std::bitset<32> &  GetBranchProperty() const {
				return bitsetBranchProperty;
		}


		/**
		 * 获取机构属性,只读
		 * 
		 * @return bitsetBranchProperty value 类型为:std::bitset<32> 
		 * 
		 */
		 std::bitset<32> &  GetBranchProperty() {
				return bitsetBranchProperty;
		}


		/**
		 * 是否设置机构属性,设置了
		 * 
		 * @param std::bitset<32> :bitsetBranchPropertyInclude
		 *  
		 * 
		 */
		 bool  IsBranchPropertyIncludeSet() const{
				 return  cBranchPropertyInclude_u != 0;
		}


		/**
		 * 获取uflag机构属性,设置了
		 * 
		 * @param std::bitset<32> :bitsetBranchPropertyInclude
		 *  
		 * 
		 */
		 const uint8_t   GetBranchPropertyIncludeUFlag() const{
				 return  cBranchPropertyInclude_u;
		}


		/**
		 * 设置机构属性,设置
		 * 
		 * @param std::bitset<32> :bitsetBranchPropertyInclude
		 *  
		 * 
		 */
		 void  SetBranchPropertyInclude( const std::bitset<32> & sVal, uint8_t cUFlag=1){
				bitsetBranchPropertyInclude = sVal;
				cBranchPropertyInclude_u = cUFlag;
		}


		/**
		 * 获取机构属性,设置
		 * 
		 * @return bitsetBranchPropertyInclude value 类型为:std::bitset<32> 
		 * 
		 */
		 const std::bitset<32> &  GetBranchPropertyInclude() const {
				return bitsetBranchPropertyInclude;
		}


		/**
		 * 获取机构属性,设置
		 * 
		 * @return bitsetBranchPropertyInclude value 类型为:std::bitset<32> 
		 * 
		 */
		 std::bitset<32> &  GetBranchPropertyInclude() {
				return bitsetBranchPropertyInclude;
		}


		/**
		 * 是否设置机构属性,取消了
		 * 
		 * @param std::bitset<32> :bitsetBranchPropertyExclude
		 *  
		 * 
		 */
		 bool  IsBranchPropertyExcludeSet() const{
				 return  cBranchPropertyExclude_u != 0;
		}


		/**
		 * 获取uflag机构属性,取消了
		 * 
		 * @param std::bitset<32> :bitsetBranchPropertyExclude
		 *  
		 * 
		 */
		 const uint8_t   GetBranchPropertyExcludeUFlag() const{
				 return  cBranchPropertyExclude_u;
		}


		/**
		 * 设置机构属性,取消
		 * 
		 * @param std::bitset<32> :bitsetBranchPropertyExclude
		 *  
		 * 
		 */
		 void  SetBranchPropertyExclude( const std::bitset<32> & sVal, uint8_t cUFlag=1){
				bitsetBranchPropertyExclude = sVal;
				cBranchPropertyExclude_u = cUFlag;
		}


		/**
		 * 获取机构属性,取消
		 * 
		 * @return bitsetBranchPropertyExclude value 类型为:std::bitset<32> 
		 * 
		 */
		 const std::bitset<32> &  GetBranchPropertyExclude() const {
				return bitsetBranchPropertyExclude;
		}


		/**
		 * 获取机构属性,取消
		 * 
		 * @return bitsetBranchPropertyExclude value 类型为:std::bitset<32> 
		 * 
		 */
		 std::bitset<32> &  GetBranchPropertyExclude() {
				return bitsetBranchPropertyExclude;
		}


		/**
		 * 是否设置机构状态了
		 * 
		 * @param uint32_t:dwBranchStatus
		 *  
		 * 
		 */
		 bool  IsBranchStatusSet() const{
				 return  cBranchStatus_u != 0;
		}


		/**
		 * 获取uflag机构状态了
		 * 
		 * @param uint32_t:dwBranchStatus
		 *  
		 * 
		 */
		 const uint8_t   GetBranchStatusUFlag() const{
				 return  cBranchStatus_u;
		}


		/**
		 * 设置机构状态
		 * 
		 * @param uint32_t:dwBranchStatus
		 *  
		 * 
		 */
		 void  SetBranchStatus( const uint32_t& sVal, uint8_t cUFlag=1){
				dwBranchStatus = sVal;
				cBranchStatus_u = cUFlag;
		}


		/**
		 * 获取机构状态
		 * 
		 * @return dwBranchStatus value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetBranchStatus() const {
				return dwBranchStatus;
		}


		/**
		 * 是否设置创建人SysNo了
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 bool  IsCreatorSysNoSet() const{
				 return  cCreatorSysNo_u != 0;
		}


		/**
		 * 获取uflag创建人SysNo了
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetCreatorSysNoUFlag() const{
				 return  cCreatorSysNo_u;
		}


		/**
		 * 设置创建人SysNo
		 * 
		 * @param uint64_t:ddwCreatorSysNo
		 *  
		 * 
		 */
		 void  SetCreatorSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwCreatorSysNo = sVal;
				cCreatorSysNo_u = cUFlag;
		}


		/**
		 * 获取创建人SysNo
		 * 
		 * @return ddwCreatorSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetCreatorSysNo() const {
				return ddwCreatorSysNo;
		}


		/**
		 * 是否设置创建时间了
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 bool  IsRowCreatDateSet() const{
				 return  cRowCreatDate_u != 0;
		}


		/**
		 * 获取uflag创建时间了
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 const uint8_t   GetRowCreatDateUFlag() const{
				 return  cRowCreatDate_u;
		}


		/**
		 * 设置创建时间
		 * 
		 * @param uint32_t:dwRowCreatDate
		 *  
		 * 
		 */
		 void  SetRowCreatDate( const uint32_t& sVal, uint8_t cUFlag=1){
				dwRowCreatDate = sVal;
				cRowCreatDate_u = cUFlag;
		}


		/**
		 * 获取创建时间
		 * 
		 * @return dwRowCreatDate value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetRowCreatDate() const {
				return dwRowCreatDate;
		}


		/**
		 * 是否设置编辑者SysNo了
		 * 
		 * @param uint64_t:ddwModifierSysNo
		 *  
		 * 
		 */
		 bool  IsModifierSysNoSet() const{
				 return  cModifierSysNo_u != 0;
		}


		/**
		 * 获取uflag编辑者SysNo了
		 * 
		 * @param uint64_t:ddwModifierSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetModifierSysNoUFlag() const{
				 return  cModifierSysNo_u;
		}


		/**
		 * 设置编辑者SysNo
		 * 
		 * @param uint64_t:ddwModifierSysNo
		 *  
		 * 
		 */
		 void  SetModifierSysNo( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwModifierSysNo = sVal;
				cModifierSysNo_u = cUFlag;
		}


		/**
		 * 获取编辑者SysNo
		 * 
		 * @return ddwModifierSysNo value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetModifierSysNo() const {
				return ddwModifierSysNo;
		}


		/**
		 * 是否设置编辑时间了
		 * 
		 * @param uint32_t:dwRowModifyDate
		 *  
		 * 
		 */
		 bool  IsRowModifyDateSet() const{
				 return  cRowModifyDate_u != 0;
		}


		/**
		 * 获取uflag编辑时间了
		 * 
		 * @param uint32_t:dwRowModifyDate
		 *  
		 * 
		 */
		 const uint8_t   GetRowModifyDateUFlag() const{
				 return  cRowModifyDate_u;
		}


		/**
		 * 设置编辑时间
		 * 
		 * @param uint32_t:dwRowModifyDate
		 *  
		 * 
		 */
		 void  SetRowModifyDate( const uint32_t& sVal, uint8_t cUFlag=1){
				dwRowModifyDate = sVal;
				cRowModifyDate_u = cUFlag;
		}


		/**
		 * 获取编辑时间
		 * 
		 * @return dwRowModifyDate value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetRowModifyDate() const {
				return dwRowModifyDate;
		}

		virtual bool Serialize(CByteStreamNetwork& bs){
		
			uint32_t dwMyLen = 0;
			if(bs.isStoring()) //for write in buffer
			{
				//can not larger than 1 M.
				CByteStreamNetwork bsDummy(NULL, 1024 * 1024, false);
				//bsDummy for precheck the xo size...
				bsDummy.isStoring(true);
				Serialize_i(bsDummy);
				dwMyLen = bsDummy.getWrittenLength();
				bs & dwMyLen;
				Serialize_i(bs);
			}
			else
			{    //for read from buffer
				bs & dwMyLen;
				uint32_t dwReadedLen = bs.getReadLength();
				Serialize_i(bs);
				dwReadedLen = bs.getReadLength() - dwReadedLen;
				// dwReadedLen for the size of xo
				if( dwReadedLen > dwMyLen ){
					return false;
				}
				//go through the unwanted mem position...
				bs.goForward( dwMyLen - dwReadedLen );
			}

			return bs.isGood();
		}

		bool Serialize_i(CByteStreamNetwork& bsTmp){

			bsTmp & dwVersion; // 序列化版本号   类型为uint32_t
			bsTmp & cVersion_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwBranchSysNo; // 序列化分支机构SysNo 类型为uint64_t
			bsTmp & cBranchSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwParentBranchSysNo; // 序列化父分支机构SysNo 类型为uint64_t
			bsTmp & cParentBranchSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & strFullName; // 序列化分支全称 类型为String
			bsTmp & cFullName_u; // 序列化uflag 类型为uint8_t
			bsTmp & strBranchName; // 序列化分支简称 类型为String
			bsTmp & cBranchName_u; // 序列化uflag 类型为uint8_t
			bsTmp & strBranchID; // 序列化分支编码 类型为String
			bsTmp & cBranchID_u; // 序列化uflag 类型为uint8_t
			bsTmp & strComment; // 序列化备注 类型为String
			bsTmp & cComment_u; // 序列化uflag 类型为uint8_t
			bsTmp & strPyCode; // 序列化拼音码 类型为String
			bsTmp & cPyCode_u; // 序列化uflag 类型为uint8_t
			bsTmp & wPrebuyPriceLevel; // 序列化适用价格Level 类型为uint16_t
			bsTmp & cPrebuyPriceLevel_u; // 序列化uflag 类型为uint8_t
			bsTmp & strContact; // 序列化联系人 类型为String
			bsTmp & cContact_u; // 序列化uflag 类型为uint8_t
			bsTmp & strPhone; // 序列化电话 类型为String
			bsTmp & cPhone_u; // 序列化uflag 类型为uint8_t
			bsTmp & strZipCode; // 序列化邮编 类型为String
			bsTmp & cZipCode_u; // 序列化uflag 类型为uint8_t
			bsTmp & strAddress; // 序列化地址 类型为String
			bsTmp & cAddress_u; // 序列化uflag 类型为uint8_t
			bsTmp & strBankAccountName; // 序列化银行户名 类型为String
			bsTmp & cBankAccountName_u; // 序列化uflag 类型为uint8_t
			bsTmp & strBankAccount; // 序列化银行账号 类型为String
			bsTmp & cBankAccount_u; // 序列化uflag 类型为uint8_t
			bsTmp & strTaxID; // 序列化税号 类型为String
			bsTmp & cTaxID_u; // 序列化uflag 类型为uint8_t
			bsTmp & strAccoutName; // 序列化核算全名 类型为String
			bsTmp & cAccoutName_u; // 序列化uflag 类型为uint8_t
			bsTmp & wAcountMode; // 序列化核算模式Enum 类型为uint16_t
			bsTmp & cAcountMode_u; // 序列化uflag 类型为uint8_t
			bsTmp & bitsetBranchProperty; // 序列化机构属性,只读 类型为BitSet
			bsTmp & cBranchProperty_u; // 序列化uflag 类型为uint8_t
			bsTmp & bitsetBranchPropertyInclude; // 序列化机构属性,设置 类型为BitSet
			bsTmp & cBranchPropertyInclude_u; // 序列化uflag 类型为uint8_t
			bsTmp & bitsetBranchPropertyExclude; // 序列化机构属性,取消 类型为BitSet
			bsTmp & cBranchPropertyExclude_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwBranchStatus; // 序列化机构状态 类型为uint32_t
			bsTmp & cBranchStatus_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwCreatorSysNo; // 序列化创建人SysNo 类型为uint64_t
			bsTmp & cCreatorSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwRowCreatDate; // 序列化创建时间 类型为uint32_t
			bsTmp & cRowCreatDate_u; // 序列化uflag 类型为uint8_t
			bsTmp & ddwModifierSysNo; // 序列化编辑者SysNo 类型为uint64_t
			bsTmp & cModifierSysNo_u; // 序列化uflag 类型为uint8_t
			bsTmp & dwRowModifyDate; // 序列化编辑时间 类型为uint32_t
			bsTmp & cRowModifyDate_u; // 序列化uflag 类型为uint8_t
			return bsTmp.isGood();
		}

		const char* GetLastErrMsg() const{
			return m_sLastErrMsg.c_str();
		}

		bool VerifyBranchDdo(){

			if(!IsVersionSet()){
				m_sLastErrMsg = "Miss Param:version";
				return false;
			}

			if(!IsBranchSysNoSet()){
				m_sLastErrMsg = "Miss Param:branchSysNo";
				return false;
			}

			if(!IsParentBranchSysNoSet()){
				m_sLastErrMsg = "Miss Param:parentBranchSysNo";
				return false;
			}

			if(!IsFullNameSet()){
				m_sLastErrMsg = "Miss Param:fullName";
				return false;
			}

			if(!IsBranchNameSet()){
				m_sLastErrMsg = "Miss Param:branchName";
				return false;
			}

			if(!IsBranchIDSet()){
				m_sLastErrMsg = "Miss Param:branchID";
				return false;
			}

			if(!IsCommentSet()){
				m_sLastErrMsg = "Miss Param:comment";
				return false;
			}

			if(!IsPyCodeSet()){
				m_sLastErrMsg = "Miss Param:pyCode";
				return false;
			}

			if(!IsPrebuyPriceLevelSet()){
				m_sLastErrMsg = "Miss Param:prebuyPriceLevel";
				return false;
			}

			if(!IsContactSet()){
				m_sLastErrMsg = "Miss Param:contact";
				return false;
			}

			if(!IsPhoneSet()){
				m_sLastErrMsg = "Miss Param:phone";
				return false;
			}

			if(!IsZipCodeSet()){
				m_sLastErrMsg = "Miss Param:zipCode";
				return false;
			}

			if(!IsAddressSet()){
				m_sLastErrMsg = "Miss Param:address";
				return false;
			}

			if(!IsBankAccountNameSet()){
				m_sLastErrMsg = "Miss Param:bankAccountName";
				return false;
			}

			if(!IsBankAccountSet()){
				m_sLastErrMsg = "Miss Param:bankAccount";
				return false;
			}

			if(!IsTaxIDSet()){
				m_sLastErrMsg = "Miss Param:taxID";
				return false;
			}

			if(!IsAccoutNameSet()){
				m_sLastErrMsg = "Miss Param:accoutName";
				return false;
			}

			if(!IsAcountModeSet()){
				m_sLastErrMsg = "Miss Param:acountMode";
				return false;
			}

			if(!IsBranchPropertySet()){
				m_sLastErrMsg = "Miss Param:branchProperty";
				return false;
			}

			if(!IsBranchPropertyIncludeSet()){
				m_sLastErrMsg = "Miss Param:branchPropertyInclude";
				return false;
			}

			if(!IsBranchPropertyExcludeSet()){
				m_sLastErrMsg = "Miss Param:branchPropertyExclude";
				return false;
			}

			if(!IsBranchStatusSet()){
				m_sLastErrMsg = "Miss Param:branchStatus";
				return false;
			}

			if(!IsCreatorSysNoSet()){
				m_sLastErrMsg = "Miss Param:creatorSysNo";
				return false;
			}

			if(!IsRowCreatDateSet()){
				m_sLastErrMsg = "Miss Param:rowCreatDate";
				return false;
			}

			if(!IsModifierSysNoSet()){
				m_sLastErrMsg = "Miss Param:modifierSysNo";
				return false;
			}

			if(!IsRowModifyDateSet()){
				m_sLastErrMsg = "Miss Param:rowModifyDate";
				return false;
			}
			return true;
		}

		void DumpData(std::ostream& oss) const{
		
			oss<<"[dwVersion:"<<dwVersion<<"] ";
			oss<<"[cVersion_u:"<<(int)cVersion_u<<"] ";
			oss<<"[ddwBranchSysNo:"<<ddwBranchSysNo<<"] ";
			oss<<"[cBranchSysNo_u:"<<(int)cBranchSysNo_u<<"] ";
			oss<<"[ddwParentBranchSysNo:"<<ddwParentBranchSysNo<<"] ";
			oss<<"[cParentBranchSysNo_u:"<<(int)cParentBranchSysNo_u<<"] ";
			oss<<"[strFullName:"<<strFullName<<"] ";
			oss<<"[cFullName_u:"<<(int)cFullName_u<<"] ";
			oss<<"[strBranchName:"<<strBranchName<<"] ";
			oss<<"[cBranchName_u:"<<(int)cBranchName_u<<"] ";
			oss<<"[strBranchID:"<<strBranchID<<"] ";
			oss<<"[cBranchID_u:"<<(int)cBranchID_u<<"] ";
			oss<<"[strComment:"<<strComment<<"] ";
			oss<<"[cComment_u:"<<(int)cComment_u<<"] ";
			oss<<"[strPyCode:"<<strPyCode<<"] ";
			oss<<"[cPyCode_u:"<<(int)cPyCode_u<<"] ";
			oss<<"[wPrebuyPriceLevel:"<<(int)wPrebuyPriceLevel<<"] ";
			oss<<"[cPrebuyPriceLevel_u:"<<(int)cPrebuyPriceLevel_u<<"] ";
			oss<<"[strContact:"<<strContact<<"] ";
			oss<<"[cContact_u:"<<(int)cContact_u<<"] ";
			oss<<"[strPhone:"<<strPhone<<"] ";
			oss<<"[cPhone_u:"<<(int)cPhone_u<<"] ";
			oss<<"[strZipCode:"<<strZipCode<<"] ";
			oss<<"[cZipCode_u:"<<(int)cZipCode_u<<"] ";
			oss<<"[strAddress:"<<strAddress<<"] ";
			oss<<"[cAddress_u:"<<(int)cAddress_u<<"] ";
			oss<<"[strBankAccountName:"<<strBankAccountName<<"] ";
			oss<<"[cBankAccountName_u:"<<(int)cBankAccountName_u<<"] ";
			oss<<"[strBankAccount:"<<strBankAccount<<"] ";
			oss<<"[cBankAccount_u:"<<(int)cBankAccount_u<<"] ";
			oss<<"[strTaxID:"<<strTaxID<<"] ";
			oss<<"[cTaxID_u:"<<(int)cTaxID_u<<"] ";
			oss<<"[strAccoutName:"<<strAccoutName<<"] ";
			oss<<"[cAccoutName_u:"<<(int)cAccoutName_u<<"] ";
			oss<<"[wAcountMode:"<<(int)wAcountMode<<"] ";
			oss<<"[cAcountMode_u:"<<(int)cAcountMode_u<<"] ";
		//嵌套内容有错误，建议使用dumpDataTree方法，复杂数据格式更直观！
			oss<<"[cBranchProperty_u:"<<(int)cBranchProperty_u<<"] ";
		//嵌套内容有错误，建议使用dumpDataTree方法，复杂数据格式更直观！
			oss<<"[cBranchPropertyInclude_u:"<<(int)cBranchPropertyInclude_u<<"] ";
		//嵌套内容有错误，建议使用dumpDataTree方法，复杂数据格式更直观！
			oss<<"[cBranchPropertyExclude_u:"<<(int)cBranchPropertyExclude_u<<"] ";
			oss<<"[dwBranchStatus:"<<dwBranchStatus<<"] ";
			oss<<"[cBranchStatus_u:"<<(int)cBranchStatus_u<<"] ";
			oss<<"[ddwCreatorSysNo:"<<ddwCreatorSysNo<<"] ";
			oss<<"[cCreatorSysNo_u:"<<(int)cCreatorSysNo_u<<"] ";
			oss<<"[dwRowCreatDate:"<<dwRowCreatDate<<"] ";
			oss<<"[cRowCreatDate_u:"<<(int)cRowCreatDate_u<<"] ";
			oss<<"[ddwModifierSysNo:"<<ddwModifierSysNo<<"] ";
			oss<<"[cModifierSysNo_u:"<<(int)cModifierSysNo_u<<"] ";
			oss<<"[dwRowModifyDate:"<<dwRowModifyDate<<"] ";
			oss<<"[cRowModifyDate_u:"<<(int)cRowModifyDate_u<<"] ";
		
		}

		// codydeng提供,非常好的dump方法 ^-^  。。。。。
		template<typename T>
		T & DumpPlusData(T& oss){
			oss<<"dwVersion:"<<dwVersion;
			oss<<"[cVersion_u:"<<cVersion_u<<"] ";
			oss<<"ddwBranchSysNo:"<<ddwBranchSysNo;
			oss<<"[cBranchSysNo_u:"<<cBranchSysNo_u<<"] ";
			oss<<"ddwParentBranchSysNo:"<<ddwParentBranchSysNo;
			oss<<"[cParentBranchSysNo_u:"<<cParentBranchSysNo_u<<"] ";
			oss<<"strFullName:"<<strFullName;
			oss<<"[cFullName_u:"<<cFullName_u<<"] ";
			oss<<"strBranchName:"<<strBranchName;
			oss<<"[cBranchName_u:"<<cBranchName_u<<"] ";
			oss<<"strBranchID:"<<strBranchID;
			oss<<"[cBranchID_u:"<<cBranchID_u<<"] ";
			oss<<"strComment:"<<strComment;
			oss<<"[cComment_u:"<<cComment_u<<"] ";
			oss<<"strPyCode:"<<strPyCode;
			oss<<"[cPyCode_u:"<<cPyCode_u<<"] ";
			oss<<"wPrebuyPriceLevel:"<<wPrebuyPriceLevel;
			oss<<"[cPrebuyPriceLevel_u:"<<cPrebuyPriceLevel_u<<"] ";
			oss<<"strContact:"<<strContact;
			oss<<"[cContact_u:"<<cContact_u<<"] ";
			oss<<"strPhone:"<<strPhone;
			oss<<"[cPhone_u:"<<cPhone_u<<"] ";
			oss<<"strZipCode:"<<strZipCode;
			oss<<"[cZipCode_u:"<<cZipCode_u<<"] ";
			oss<<"strAddress:"<<strAddress;
			oss<<"[cAddress_u:"<<cAddress_u<<"] ";
			oss<<"strBankAccountName:"<<strBankAccountName;
			oss<<"[cBankAccountName_u:"<<cBankAccountName_u<<"] ";
			oss<<"strBankAccount:"<<strBankAccount;
			oss<<"[cBankAccount_u:"<<cBankAccount_u<<"] ";
			oss<<"strTaxID:"<<strTaxID;
			oss<<"[cTaxID_u:"<<cTaxID_u<<"] ";
			oss<<"strAccoutName:"<<strAccoutName;
			oss<<"[cAccoutName_u:"<<cAccoutName_u<<"] ";
			oss<<"wAcountMode:"<<wAcountMode;
			oss<<"[cAcountMode_u:"<<cAcountMode_u<<"] ";
			oss<<"bitsetBranchProperty:"<<bitsetBranchProperty;
			oss<<"[cBranchProperty_u:"<<cBranchProperty_u<<"] ";
			oss<<"bitsetBranchPropertyInclude:"<<bitsetBranchPropertyInclude;
			oss<<"[cBranchPropertyInclude_u:"<<cBranchPropertyInclude_u<<"] ";
			oss<<"bitsetBranchPropertyExclude:"<<bitsetBranchPropertyExclude;
			oss<<"[cBranchPropertyExclude_u:"<<cBranchPropertyExclude_u<<"] ";
			oss<<"dwBranchStatus:"<<dwBranchStatus;
			oss<<"[cBranchStatus_u:"<<cBranchStatus_u<<"] ";
			oss<<"ddwCreatorSysNo:"<<ddwCreatorSysNo;
			oss<<"[cCreatorSysNo_u:"<<cCreatorSysNo_u<<"] ";
			oss<<"dwRowCreatDate:"<<dwRowCreatDate;
			oss<<"[cRowCreatDate_u:"<<cRowCreatDate_u<<"] ";
			oss<<"ddwModifierSysNo:"<<ddwModifierSysNo;
			oss<<"[cModifierSysNo_u:"<<cModifierSysNo_u<<"] ";
			oss<<"dwRowModifyDate:"<<dwRowModifyDate;
			oss<<"[cRowModifyDate_u:"<<cRowModifyDate_u<<"] ";
			return oss;
		}

		// wileywang提供,树形dump方法 ^-^  。。。。。
		void DumpDataTree(std::ostream& os, int ident = 0)const {
			g_pprint(os, "dwVersion", dwVersion, ident);
			g_pprint(os, "cVersion_u", cVersion_u, ident);
			g_pprint(os, "ddwBranchSysNo", ddwBranchSysNo, ident);
			g_pprint(os, "cBranchSysNo_u", cBranchSysNo_u, ident);
			g_pprint(os, "ddwParentBranchSysNo", ddwParentBranchSysNo, ident);
			g_pprint(os, "cParentBranchSysNo_u", cParentBranchSysNo_u, ident);
			g_pprint(os, "strFullName", strFullName, ident);
			g_pprint(os, "cFullName_u", cFullName_u, ident);
			g_pprint(os, "strBranchName", strBranchName, ident);
			g_pprint(os, "cBranchName_u", cBranchName_u, ident);
			g_pprint(os, "strBranchID", strBranchID, ident);
			g_pprint(os, "cBranchID_u", cBranchID_u, ident);
			g_pprint(os, "strComment", strComment, ident);
			g_pprint(os, "cComment_u", cComment_u, ident);
			g_pprint(os, "strPyCode", strPyCode, ident);
			g_pprint(os, "cPyCode_u", cPyCode_u, ident);
			g_pprint(os, "wPrebuyPriceLevel", wPrebuyPriceLevel, ident);
			g_pprint(os, "cPrebuyPriceLevel_u", cPrebuyPriceLevel_u, ident);
			g_pprint(os, "strContact", strContact, ident);
			g_pprint(os, "cContact_u", cContact_u, ident);
			g_pprint(os, "strPhone", strPhone, ident);
			g_pprint(os, "cPhone_u", cPhone_u, ident);
			g_pprint(os, "strZipCode", strZipCode, ident);
			g_pprint(os, "cZipCode_u", cZipCode_u, ident);
			g_pprint(os, "strAddress", strAddress, ident);
			g_pprint(os, "cAddress_u", cAddress_u, ident);
			g_pprint(os, "strBankAccountName", strBankAccountName, ident);
			g_pprint(os, "cBankAccountName_u", cBankAccountName_u, ident);
			g_pprint(os, "strBankAccount", strBankAccount, ident);
			g_pprint(os, "cBankAccount_u", cBankAccount_u, ident);
			g_pprint(os, "strTaxID", strTaxID, ident);
			g_pprint(os, "cTaxID_u", cTaxID_u, ident);
			g_pprint(os, "strAccoutName", strAccoutName, ident);
			g_pprint(os, "cAccoutName_u", cAccoutName_u, ident);
			g_pprint(os, "wAcountMode", wAcountMode, ident);
			g_pprint(os, "cAcountMode_u", cAcountMode_u, ident);
			g_pprint(os, "bitsetBranchProperty", bitsetBranchProperty, ident);
			g_pprint(os, "cBranchProperty_u", cBranchProperty_u, ident);
			g_pprint(os, "bitsetBranchPropertyInclude", bitsetBranchPropertyInclude, ident);
			g_pprint(os, "cBranchPropertyInclude_u", cBranchPropertyInclude_u, ident);
			g_pprint(os, "bitsetBranchPropertyExclude", bitsetBranchPropertyExclude, ident);
			g_pprint(os, "cBranchPropertyExclude_u", cBranchPropertyExclude_u, ident);
			g_pprint(os, "dwBranchStatus", dwBranchStatus, ident);
			g_pprint(os, "cBranchStatus_u", cBranchStatus_u, ident);
			g_pprint(os, "ddwCreatorSysNo", ddwCreatorSysNo, ident);
			g_pprint(os, "cCreatorSysNo_u", cCreatorSysNo_u, ident);
			g_pprint(os, "dwRowCreatDate", dwRowCreatDate, ident);
			g_pprint(os, "cRowCreatDate_u", cRowCreatDate_u, ident);
			g_pprint(os, "ddwModifierSysNo", ddwModifierSysNo, ident);
			g_pprint(os, "cModifierSysNo_u", cModifierSysNo_u, ident);
			g_pprint(os, "dwRowModifyDate", dwRowModifyDate, ident);
			g_pprint(os, "cRowModifyDate_u", cRowModifyDate_u, ident);
		}
		
		//提供ToString借口，默认为DumpData格式，请按需要进行修改
		std::string ToString() const{
			std::stringstream ss;
			DumpData(ss);
			return ss.str();
		}

/**
 ********************以下信息是每个版本的字段********************
 */

};

}
}
}

#endif /* ERP_ORGANIZATION_DDO_CBRANCHDDO_BY_AUTOGEN_V5_H */
